home *** CD-ROM | disk | FTP | other *** search
- {
- MARC BIR
-
- >My second problem is the video memory. From my technical
- >reference manual, it tells me that the address starts at segment A000H,
- >offset 0000H. I've been Programming the VGA 320x200x256 mode quite alot,
- >but in the EGA address, whenever I Write to video memory, all I see is
- >black and white, like monochrome. if I will be happy if I get information
- >about that. Another thing that actually question me is that when I'm
- >using the BIOS block palette to create a fade in/out, it makes the screen
- >flicker, which is quite disturbing. What Info I need is how the VGA port
- JS>works on setting up the RGB palette. Thanks.
-
- How do you init. the mode? Call int 10h With 13h? if so then using
- A000:0000 is correct. As far as fading, use the following.
- }
-
- Type
- PalType = Array [0..255, 0..2] of Byte;
-
- Procedure SetPalette(Color, Count : Byte; Palette : PalType);
- Var
- Ct, Col : Byte;
- begin
- Port[$3C8] := Color; { First color to set, Change this to $3C7 to
- read. And switch the Port=Pal at bottom }
- For Ct := 1 to Count Do { Count is the total number of DACs to set }
- For Col := 0 to 2 Do { Sets the Red, Green and Blue }
- Port[$3C9] := Palette[Ct, Col];
- end;
-
- Procedure SetMode(Mode : Byte); Assembler;
- Asm
- Mov AH, 0
- Mov AL, Mode
- Int 10h
- end;
-
- {You can test your mode set With this }
- Procedure TestScreen;
- Var
- X, Y : Integer;
- begin
- For X := 0 to 319 Do
- For Y := 0 to 199 Do
- Mem[$A000 : Y * 320 + X] := (X * Y) Mod 256;
- end;
-
- begin
- SetMode($13);
- TestScreen;
- end.